package com.cmc.cloud.cmclink.doc.service.special;


import com.cmc.cloud.cmclink.doc.vo.special.externalapivo.DgCreateOrUpdateVO;
import com.cmc.cloud.cmclink.doc.vo.special.externalapivo.FlexiCreateOrUpdateVO;
import com.cmc.cloud.cmclink.doc.vo.special.externalapivo.OdoCreateOrUpdateVO;
import com.cmc.cloud.cmclink.doc.vo.special.externalapivo.OogCreateOrUpdateVO;

import javax.validation.Valid;

/**
 * 外部接口服务类
 * @author huzheng
 * @date 2025/8/19
 */
public interface SpcExternalApiService {
    /**
     * 创建或更新超限货物（OOG）信息
     *
     * @param createReqVO 超限货物创建或更新的请求参数
     * @return 超限货物ID
     */
    Long createOrUpdateOog(@Valid OogCreateOrUpdateVO createReqVO);

    /**
     * 创建或更新超限货物（ODO）信息
     *
     * @param createReqVO 超限货物创建或更新的请求参数
     * @return 超限货物ID
     */
    Long createOrUpdateOdo(@Valid OdoCreateOrUpdateVO createReqVO);

    /**
     * 创建或更新超限货物（FLEXI）信息
     *
     * @param createReqVO 超限货物创建或更新的请求参数
     * @return 超限货物ID
     */
    Long createOrUpdateFlexi(@Valid FlexiCreateOrUpdateVO createReqVO);

    /**
     * 创建或更新超限货物（DG）信息
     *
     * @param createReqVO 超限货物创建或更新的请求参数
     * @return 超限货物ID
     */
    Long createOrUpdateDg(@Valid DgCreateOrUpdateVO createReqVO);
}
